package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.persistence.Column;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 对象 steel
 * 
 * @author ruoyi
 * @date 2025-03-02
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Steel extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 板号 */
    @NotNull(message = "板号不能为空")
    @Column(name = "plate_no")
    private Long plateNo;

    /** 材料名称 */
    @Column(name = "product_name")
    @Excel(name = "材料名称")
    private String productName;

    /** 材质 */
    @Column(name = "material")
    @Excel(name = "材质")
    private String material;

    /** 长度 */
    @Column(name = "length")
    @Excel(name = "长度")
    private String length;

    /** 宽度 */
    @Column(name = "width")
    @Excel(name = "宽度")
    private String width;

    /** 高度(厚度) */
    @Column(name = "heigtht")
    @Excel(name = "高度(厚度)")
    private String heigtht;

    /** 厚度 */
    @Column(name = "thickness")
    @Excel(name = "厚度")
    private String thickness;

    /** 重量 吨 */
    @Column(name = "weight")
    @Excel(name = "重量 吨")
    private String weight;

    /** 厂家 */
    @Column(name = "factory")
    @Excel(name = "厂家")
    private String factory;

    /** 区域 */
    @Excel(name = "区域")
    @Column(name = "place")
    private String place;

    /** 层 */
    @Excel(name = "层")
    @Column(name = "floor")
    private String floor;

    /** 理论重量 吨 */
    @Excel(name = "理论重量 吨")
    @Column(name = "theoretical_weight")
    private String theoreticalWeight;

    /** 过磅重量 吨 */
    @Excel(name = "过磅重量 吨")
    @Column(name = "actual_weight")
    private String actualWeight;

    /** 操作类型 0：已出库；1：已入库 */
    @Column(name = "ope_type")
    @Excel(name = "操作类型 0：已出库；1：已入库")
    private String opeType;

    /** 供货单位 */
    @Column(name = "supplier_Name")
    @Excel(name = "供货单位")
    private String supplierName;

    /** 入库出库的操作者 */
    @Column(name = "ope_name")
    @Excel(name = "入库出库的操作者")
    private String opeName;

    /** 来货单编号 */
    @Column(name = "privoder_no")
    @Excel(name = "来货单编号")
    private String privoderNo;

    /** 车牌号 */
    @Column(name = "car_no")
    @Excel(name = "车牌号")
    private String carNo;

    /** 备注1 */
    @Column(name = "remark1")
    @Excel(name = "备注1")
    private String remark1;

    /** 备注2 */
    @Column(name = "remark2")
    @Excel(name = "备注2")
    private String remark2;

    /** 备注3 */
    @Column(name = "remark3")
    @Excel(name = "备注3")
    private String remark3;

    /** 备注4 */
    @Column(name = "remark4")
    @Excel(name = "备注4")
    private String remark4;

    /** 备注5 */
    @Column(name = "remark5")
    @Excel(name = "备注5")
    private String remark5;

    /** 出库时间 */
    @Column(name = "out_time")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出库时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date outTime;

    /** 修改时间 */
    @Column(name = "modify_time")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date modifyTime;

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("plateNo", getPlateNo())
            .append("productName", getProductName())
            .append("material", getMaterial())
            .append("length", getLength())
            .append("width", getWidth())
            .append("heigtht", getHeigtht())
            .append("thickness", getThickness())
            .append("weight", getWeight())
            .append("factory", getFactory())
            .append("place", getPlace())
            .append("floor", getFloor())
            .append("theoreticalWeight", getTheoreticalWeight())
            .append("actualWeight", getActualWeight())
            .append("opeType", getOpeType())
            .append("supplierName", getSupplierName())
            .append("opeName", getOpeName())
            .append("privoderNo", getPrivoderNo())
            .append("carNo", getCarNo())
            .append("remark1", getRemark1())
            .append("remark2", getRemark2())
            .append("remark3", getRemark3())
            .append("remark4", getRemark4())
            .append("remark5", getRemark5())
            .append("createTime", getCreateTime())
            .append("outTime", getOutTime())
            .append("modifyTime", getModifyTime())
            .toString();
    }
}
